<template>
    <div>
        <router-link to="/"
                     class="header-abs"
                     v-show="showAbs"
        >
            <div class="iconfont header-abs-back">&#xe624;</div>
        </router-link>

        <div class="header-fixed"
             v-show="!showAbs"
             :style="opacityStyle"
        >
            <div class="iconfont header-fixed-back">&#xe624;</div>
            景点详情
        </div>
    </div>
</template>

<script>
    export default {
        name: "Header",
        data() {
            return {
                showAbs: true,
                opacityStyle: {
                    opacity: 0
                }
            }
        },
        methods: {
            handleScroll() {
                const top = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset;
                if (top > 60) {
                    let opacity = top / 140;
                    opacity = opacity > 1 ? 1 : opacity;
                    this.opacityStyle = {
                        opacity
                    }
                    this.showAbs = false;
                } else {
                    this.showAbs = true;
                }
            }
        },
        mounted() {
            window.addEventListener('scroll', this.handleScroll)
        },
        // 页面被隐藏或被替换称新的页面时执行
        deactivated() {
            window.removeEventListener("scroll", this.handleScroll)
        }
    }
</script>

<style lang="scss" scoped>

    @import "@/styles/varibles.scss";

    .header-abs {
        position: absolute;
        left: .2rem;
        top: .2rem;
        width: .8rem;
        height: .8rem;
        line-height: .8rem;
        border-radius: .4rem;
        background-color: rgba(0, 0, 0, 0.8);
        text-align: center;

        .header-abs-back {
            color: #ffffff;
            font-size: .4rem;
        }
    }

    .header-fixed {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 2;
        height: $headerHeight;
        line-height: $headerHeight;
        text-align: center;
        color: #ffffff;
        background-color: $bgColor;
        font-size: .32rem;

        .header-fixed-back {
            position: absolute;
            top: 0;
            left: 0;
            width: .64rem;
            text-align: center;
            font-size: .4rem;
            color: #ffffff;
        }
    }

</style>
